Page({
  data: {
    formData: {
      username: '',
      mobile: '',
      email: '',
      nickname: '',
      password: '',
      password1: ''
    },
    isAgree: false, // 存储协议勾选状态
    isLoading: false // 加载状态
  },

  // checkbox 状态变更事件处理
  onAgreeChange(e) {
    const isChecked = e.detail.value.length > 0;
    this.setData({
      isAgree: isChecked
    });
  },

  // 表单提交处理
  registerHandler(e) {
    // 如果正在加载中，不重复提交
    if (this.data.isLoading) return;
    
    const formData = e.detail.value;
    const fieldNames = {
      username: '用户名',
      mobile: '手机号',
      email: '邮箱',
      nickname: '昵称',
      password: '密码',
      password1: '确认密码'
    };

    // 校验输入框是否为空
    for (let key in formData) {
      if (formData[key] === '') {
        wx.showToast({
          title: `${fieldNames[key]} 不能为空`,
          icon: 'none'
        });
        return;
      }
    }

    // 密码长度校验
    if (formData.password.length < 6 || formData.password.length > 16) {
      wx.showToast({ title: '密码需为6-16位', icon: 'none' });
      return;
    }
    
    // 两次密码一致性校验
    if (formData.password !== formData.password1) {
      wx.showToast({ title: '两次密码不一致', icon: 'none' });
      return;
    }
    
    // 使用 data 中的 isAgree 进行校验
    if (!this.data.isAgree) {
      wx.showToast({ title: '请勾选注册协议', icon: 'none' });
      return;
    }
    
    // 开始加载状态
    this.setData({ isLoading: true });
    
    // 所有校验通过，发送注册请求
    wx.request({
      url: 'http://localhost:8080/user',
      method: 'POST',
      data: formData,
      success: (res) => {
        if (res.data.code === 200) {
          wx.showToast({
            title: '注册成功',
            icon: 'success',
            duration: 2000,
            success: () => {
              // 延迟返回，确保提示信息显示完整
              setTimeout(() => {
                wx.navigateBack({ delta: 1 });
              }, 2000);
            }
          });
        } else {
          wx.showToast({ title: res.data.message || '注册失败', icon: 'none' });
        }
      },
      fail: (err) => {
        wx.showToast({ title: '网络请求失败', icon: 'none' });
        console.error('注册请求失败详情：', err);
      },
      complete: () => {
        // 结束加载状态
        this.setData({ isLoading: false });
      }
    });
  },

  // 生命周期函数
  onLoad() {},
  onReady() {},
  onShow() {},
  onHide() {},
  onUnload() {},
  onPullDownRefresh() {
    wx.stopPullDownRefresh();
  },
  onReachBottom() {},
  onShareAppMessage() {
    return {
      title: '注册页面',
      path: '/pages/register/register'
    };
  }
});    